package io.renren.modules.generator.dao;

import io.renren.common.utils.PageUtils;
import io.renren.modules.generator.entity.TTrainingDictionaryEntity;
import io.renren.modules.generator.entity.TTrainingEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import io.renren.modules.generator.entity.TTrainingObjectEntity;
import io.renren.modules.generator.entity.TTrainingPeopleEntity;
import io.renren.modules.generator.entity.vo.TTrainingVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 训练表
 * 
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2019-08-07 13:58:41
 */
@Mapper
public interface TTrainingDao extends BaseMapper<TTrainingEntity> {


    /**
     * 新增训练表
     */
    int insertTTraining(TTrainingEntity trainingEntity);
    /**
     * 新增 训练科目  批量的
     */
    int insertTTrainingObject(List<TTrainingObjectEntity> list);
    int getMaxTrainingId();
    /**
     *修改训练走这个  添加训练科目-
     */
    int addTTrainingObject(TTrainingObjectEntity objectEntity);
    /**
     *修改训练走这个  添加训练人员
     */
    int addTTrainingPeople(TTrainingPeopleEntity peopleEntity);
    /**
     * 新增 训练人员  批量的
     */
    int insertTTrainingPeople(List<TTrainingPeopleEntity> listPeople);
    /**
     * 层级 下拉框
     */
    List<TTrainingDictionaryEntity> getLevel();
    /**
     * 目的 下拉框
     */
    List<TTrainingDictionaryEntity> getDatachment();
    /**
     * 组织单位
     */
    List<TTrainingDictionaryEntity> getPurpose();
    /**
     * 类型
     */
    List<TTrainingDictionaryEntity> getTrainType();
    /**
     * 回显数据 训练信息
     */
    TTrainingEntity getHxTTraining(@Param(value="id")Integer id);
    /**
     * 回显 训练科目
     */
    List<TTrainingObjectEntity> getHxTTrainingObject(@Param(value="id")Integer id);
    /**
     * 回显 训练人员
     */
    List<TTrainingPeopleEntity> getTTrainingPeople(@Param(value="id")Integer id);
    /**
     * 删除 训练信息
     */
    int delTTrainingEntity(@Param(value="id")Integer id);
    /**
     * 删除 训练科目
     */
    int delTTrainingObjectEntity(@Param(value="id")Integer id);
    /**
     * 删除 训练人员
     */
    int delTTrainingPeopleEntity(@Param(value="id")Integer id);
    /**
     * 修改 训练人员
     */
    int updateTTrainingEntity(TTrainingEntity trainingEntity);

    /**
     * 列表
     */
    List<TTrainingEntity> selectTTraining(Map<String, Object> params);
    /**
     * 导出
     */
    List<TTrainingVo> DcTTraining(TTrainingEntity trainingEntity);
    List<Map<String,Object>> DcTTrainingMap(TTrainingEntity trainingEntity);


    /**
     * 训练首页 支队
     */
    List<TTrainingEntity> getSYtraining(TTrainingEntity trainingEntity);

    /**
     *训练首页 中队
     * @param trainingEntity
     * @return
     */
    List<TTrainingEntity> getZdtraining(TTrainingEntity trainingEntity);
   /*
   * 查询个人战斗经历
   * */
    List<TTrainingEntity> findPeopleTTraining(TTrainingEntity trainingEntity);

    /**
     * 训练头部 所有支队总计
     */
    List<TTrainingEntity> totalTrainingDetachment(TTrainingEntity tTraining);
    /**
     * 训练头部 所有中队总计
     */
    List<TTrainingEntity> totalTrainingSquadron(TTrainingEntity trainingEntity);

    /**
     * 修改合格率
     * @param tTraining
     * @return
     */
    int updateQualificationrate(TTrainingEntity tTraining);
    /**
     * 头部汇总
     */
    List<TTrainingEntity> headCount(TTrainingEntity trainingEntity);
}
